bitkeeper revision 1.1233 (421a1c36TYJWUEtp558QjJv1X0XXrQ)
authormaf46@burn.cl.cam.ac.uk <maf46@burn.cl.cam.ac.uk>
Mon, 21 Feb 2005 17:36:54 +0000 (17:36 +0000)
committermaf46@burn.cl.cam.ac.uk <maf46@burn.cl.cam.ac.uk>
Mon, 21 Feb 2005 17:36:54 +0000 (17:36 +0000)
If debugging is enabled, printout the e820 map for vmx guests.

Signed-off-by: michael.fetterman@cl.cam.ac.uk
xen/arch/x86/e820.c
xen/arch/x86/vmx_vmcs.c
xen/include/asm-x86/e820.h

index cf78c2184428dc01a0a644060ee1083dce3bf255..f97e50f4904c94fb5e9042656d144fcd018a3c54 100644 (file)
@@ -27,15 +27,22 @@ static void __init add_memory_region(unsigned long long start,
 
 #define E820_DEBUG     1
 
-static void __init print_memory_map(void)
+#ifndef NDEBUG
+#define __init_unless_debugging
+#else
+#define __init_unless_debugging __init
+#endif
+
+void __init_unless_debugging
+print_e820_memory_map(struct e820entry *map, int entries)
 {
     int i;
 
-    for (i = 0; i < e820.nr_map; i++) {
+    for (i = 0; i < entries; i++) {
         printk(" %016Lx - %016Lx ",
-               e820.map[i].addr,
-               e820.map[i].addr + e820.map[i].size);
-        switch (e820.map[i].type) {
+               map[i].addr,
+               map[i].addr + map[i].size);
+        switch (map[i].type) {
         case E820_RAM: printk("(usable)\n");
             break;
         case E820_RESERVED:
@@ -47,7 +54,7 @@ static void __init print_memory_map(void)
         case E820_NVS:
             printk("(ACPI NVS)\n");
             break;
-        default:       printk("type %u\n", e820.map[i].type);
+        default:       printk("type %u\n", map[i].type);
             break;
         }
     }
@@ -343,10 +350,10 @@ static void __init machine_specific_memory_setup(
     clip_4gb();
 }
 
-unsigned long init_e820(struct e820entry *raw, int raw_nr)
+unsigned long __init init_e820(struct e820entry *raw, int raw_nr)
 {
     machine_specific_memory_setup(raw, raw_nr);
     printk(KERN_INFO "Physical RAM map:\n");
-    print_memory_map();
+    print_e820_memory_map(e820.map, e820.nr_map);
     return find_max_pfn();
 }
index e3bc2d73382a2e372fec8aed6d48f74246486335..44fb4a616b336b348c4e044679235b2691e2dfa9 100644 (file)
@@ -125,6 +125,10 @@ int vmx_setup_platform(struct exec_domain *d, execution_context_t *context)
 
     e820p = (struct e820entry *) ((unsigned long) p + offset); 
 
+#ifndef NDEBUG
+    print_e820_memory_map(e820p, n);
+#endif
+
     for (i = 0; i < n; i++) {
         if (e820p[i].type == E820_SHARED_PAGE) {
             gpfn = (e820p[i].addr >> PAGE_SHIFT);
index 060ef94a9696ef7b5ff770c3b113a5d95aeba1e4..d774b9a321d6f0dc94bb444ce57b7b62041e8d53 100644 (file)
@@ -27,6 +27,10 @@ struct e820map {
 extern unsigned long init_e820(struct e820entry *, int);
 extern struct e820map e820;
 
+#ifndef NDEBUG
+extern void print_e820_memory_map(struct e820entry *map, int entries);
+#endif
+
 #endif /*!__ASSEMBLY__*/
 
 #define PFN_DOWN(x)   ((x) >> PAGE_SHIFT)